//请创建一个抽象类 Person，添加 print 抽象方法和 getClassName 方法，
// getClassName 方法用于获取 className 属性的值，className 属性的值通过构造方法时赋值，
// Student 实现 print 返回 "class extends Person abstract class."，
// 请实现 Person 类和 Student 类。也可以通过查看 Main 中对 Person 子类 Student 的创建和方法的调用来补全相应代码。

//本题目无需任何输入，运行正确的代码后，控制台应返回结果：
//Student class extends Person abstract class.
package Self_Practice.PROJECT_1;
import java.lang.reflect.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws Exception{

        Class<Person> s = Person.class;
        if (!Modifier.isAbstract(s.getModifiers())) {
            throw new Exception("类不符合题意");
        }

        Method m1 = s.getMethod("print");
        Method m2 = s.getMethod("getClassName");
        if (!(Modifier.isAbstract(m1.getModifiers()) && !Modifier.isAbstract(m2.getModifiers())) ) {
            throw new Exception("类中的方法不符合题意");
        }

        Person p = new Student("Student");
        System.out.println(p.getClassName() + " " + p.print());

    }
}
